Systems and methods for controlling haptic signals

ABSTRACT

Systems and methods for controlling a haptic output device include a processor, a haptic peripheral including a haptic output device, and a sensor coupled to the haptic output device. The haptic output device is configured to receive a control signal from the processor and output a haptic effect having a profile to the haptic peripheral in response to the control signal from the processor. The sensor is configured to sense a current operational status of the haptic output device. The processor is configured to generate the control signal for the haptic output device depending on a plurality of inputs including a desired haptic effect waveform and a signal received from the sensor. The inputs may also include at least one parameter of the haptic output device. As such, the control signal causes the profile of the haptic effect to substantially match the desired haptic effect waveform.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 62/087,752, filed Dec. 4, 2014, which is herebyincorporated by reference in its entirety for all purposes.

FIELD OF THE INVENTION

Embodiments hereof relate in general to devices with haptic outputdevices and more particularly to systems and methods for controllinghaptic output devices.

BACKGROUND OF THE INVENTION

Video games and video game systems have become even more popular due tothe marketing toward, and resulting participation from, casual gamers.Conventional video game devices or controllers use visual and auditorycues to provide feedback to a user. In some interface devices,kinesthetic feedback (such as active and resistive force feedback)and/or tactile feedback (such as vibration, texture, and heat) is alsoprovided to the user, more generally known collectively as “hapticfeedback” or “haptic effects”. Haptic feedback can provide cues thatenhance and simplify the user interface. Specifically, vibrationeffects, or vibrotactile haptic effects, may be useful in providing cuesto users of electronic devices to alert the user to specific events, orprovide realistic feedback to create greater sensory immersion within asimulated or virtual environment.

Other devices, such as medical devices, automotive controls, remotecontrols, and other similar devices wherein a user interacts with userinput elements to cause an action also benefit from haptic feedback orhaptic effects. For example, and not by way of limitation, user inputelements on medical devices may be operated by a user outside the bodyof a patient at a proximal portion of a medical device to cause anaction within the patient's body at a distal end of the medical device.Haptic feedback or haptic effects may be employed on devices to alertthe user to specific events, or provide realistic feedback to the userregarding interaction of the medical device with the patient at thedistal end of the medical device.

Conventional haptic feedback systems for gaming and other devicesgenerally include one or more actuators attached to the housing forgenerating the haptic feedback. However, some actuators require asignificant amount of time to slow down when braked and/or a significantamount of time to kick start. As such, a profile of the haptic effectsoutput or delivered by the actuator may not match the desired hapticeffect waveform. More particularly, as shown in FIG. 1, a desired hapticeffect waveform 130 is shown with a corresponding or matching controlsignal 132. A haptic effect 134 output in response to control signal 132is also shown. The profile of haptic effect 134 does not closely matchor follow control signal 132 nor desired haptic effect waveform 130.

Embodiments hereof relate to methods and systems to improve anactuator's ability to achieve a desired haptic profile or waveform.

BRIEF SUMMARY OF THE INVENTION

Embodiments hereof are directed to a method of controlling a hapticoutput device. A first input including a desired haptic effect waveformis received. The desired haptic effect waveform includes at least onestrength increase or strength decrease. A second input from a sensor isreceived. The second input includes a current operational status of thehaptic output device. A control signal is generated via an algorithmthat uses both the first and second inputs. The control signal isapplied to the haptic output device to instruct the haptic output deviceto output a haptic effect having a profile. The control signal causesthe profile of the haptic effect to include a strength increase orstrength decrease that substantially matches the strength increase orstrength decrease, respectively, of the desired haptic effect waveform.

Embodiments hereof are also directed to a system for controlling ahaptic output device. In an embodiment, the system includes a processor,a haptic peripheral including a haptic output device, and a sensorcoupled to the haptic output device. The haptic output device isconfigured to receive a control signal from the processor and output ahaptic effect having a profile to the haptic peripheral in response tothe control signal from the processor. The sensor is configured to sensea current operational status of the haptic output device. The processoris configured to generate the control signal for the haptic outputdevice depending on a plurality of inputs including a desired hapticeffect waveform, a signal received from the sensor, and at least oneparameter of the haptic output device. As such, the control signalcauses the profile of the haptic effect to substantially match thedesired haptic effect waveform.

According to another embodiment hereof, the system includes a processor,a haptic peripheral including a haptic output device, and a sensorcoupled to the haptic output device. The haptic output device is abrushless electric DC motor having internal controls to automaticallykick start and brake the motor. The haptic output device is configuredto receive a control signal from the processor and output a hapticeffect having a profile to the haptic peripheral in response to thecontrol signal from the processor. The sensor is configured to sense aposition, a speed, or an acceleration to the haptic output device. Theprocessor is configured to vary the control signal for the haptic outputdevice depending on a desired haptic effect waveform that includes atleast one strength increase or strength decrease and on a signalreceived from the sensor. As such, the control signal causes the profileof the haptic effect to include a strength increase or strength decreasethat substantially matches the strength increase or strength decrease ofthe desired haptic effect waveform.

The haptic peripheral may be a game controller, tablet, phone, personaldigital assistant (PDA), computer, gaming peripheral, mouse, wearableuser items, or other devices which include haptic output devices foroutputting haptic effects. The processor may be disposed in a hostcomputer or in the haptic peripheral.

BRIEF DESCRIPTION OF DRAWINGS

The foregoing and other features and advantages of the invention will beapparent from the following description of embodiments hereof asillustrated in the accompanying drawings. The accompanying drawings,which are incorporated herein and form a part of the specification,further serve to explain the principles of the invention and to enable aperson skilled in the pertinent art to make and use the invention. Thedrawings are not to scale.

FIG. 1 is a schematic illustration of a desired haptic effect waveform,a control signal, and a haptic effect output in response to the controlsignal.

FIG. 2A is a schematic illustration of an embodiment of a hapticperipheral or controller.

FIG. 2B is a schematic illustration of another view of the hapticperipheral or controller of FIG. 2A.

FIG. 3 is a block diagram of the haptic peripheral or controller of FIG.2A in conjunction with a host computer and display.

FIG. 4 is a flow chart illustrating a method for controlling hapticeffects output by a haptic output device according to an embodimenthereof, wherein the method includes generating a control signalcompensating for sensor information relating to a current operationalstatus of the haptic output device.

FIG. 5 is a schematic illustration of a desired haptic effect waveform,a first control signal prior to modification thereof, a second controlsignal after modification thereof according to the flow chart of FIG. 4,and a haptic effect output in response to the second or modified controlsignal.

FIG. 6 is a flow chart illustrating a method for controlling hapticeffects output by a haptic output device according to another embodimenthereof, wherein the method includes generating a control signalcompensating for sensor information relating to a current operationalstatus of the haptic output device as well as parameters or propertiesof the haptic output device.

DETAILED DESCRIPTION OF THE INVENTION

Specific embodiments of the present invention are now described withreference to the figures, wherein like reference numbers indicateidentical or functionally similar elements.

The following detailed description is merely exemplary in nature and isnot intended to limit the invention or the application and uses of theinvention. Furthermore, there is no intention to be bound by anyexpressed or implied theory presented in the preceding technical field,background, brief summary or the following detailed description.Furthermore, although the following description is directed to gamingdevices and controllers for gaming devices, those skilled in the artwould recognize that the description applies equally to other deviceshaving haptic output devices.

Embodiments hereof relate to systems and methods for controlling ahaptic output device. The haptic output device is disposed within or ona haptic peripheral. The haptic peripheral may be, for example, ahandheld gaming haptic peripheral 100 for a gaming system as shown inFIGS. 2A-2B or other devices that include haptic output devices foroutputting haptic effects such as, but not limited to, phones, personaldigital assistants (PDA), tablets, computers, gaming peripherals,computer mouse, wearable user items, medical devices, automotivecontrols, remote controls, touch screens, or the like.

Haptic peripheral 100 may be generally used with a gaming system thatmay be connected to a computer, mobile phone, television, or othersimilar device. FIGS. 2A-2B illustrate different perspective views ofhaptic peripheral 100, while FIG. 3 illustrates a block diagram ofhaptic peripheral 100 used in a gaming system 101 that further includesa host computer 104 and a display 106. As shown in the block diagram ofFIG. 3, haptic peripheral 100 includes a local processor 108 whichcommunicates with host computer 104 via a connection 105. Connection 105may be a wired connection, a wireless connection, or other types ofconnections known to those skilled in the art. Local processor 108 maybe any type of general purpose processor, or could be a processorspecifically designed to provide haptic effects, such as anapplication-specific integrated circuit (“ASIC”). Haptic peripheral 100may be alternatively configured to not include local processor 108,whereby all input/output signals from haptic peripheral 100 are handledand processed directly by a processor of host computer 104. Hostcomputer 104 is coupled to display screen 106. In an embodiment, hostcomputer 104 is a gaming device console and display screen 106 is amonitor which is coupled to the gaming device console, as known in theart. In another embodiment, as known to those skilled in the art, hostcomputer 104 and display screen 106 may be combined into a singledevice.

A housing 102 of haptic peripheral 100 is shaped to easily accommodatetwo hands gripping the device, either by a left-handed user or aright-handed user. Those skilled in the art would recognize that hapticperipheral 100 is merely an exemplary embodiment of a controller ofsimilar shape and size to many “gamepads” currently available for videogame console systems, and that controllers with other configurations ofuser input elements, shapes, and sizes may be used, including but notlimited to controllers such as a Wii™ remote or Wii™ U Controller, Sony®SixAxis™ controller or Sony® Wand controller, as well as controllersshaped as real life objects (such as tennis rackets, golf clubs,baseball bats, and the like) and other shapes.

Haptic peripheral 100 includes several user input elements ormanipulandums, including a joystick 110, a button 114, and a trigger118. As used herein, user input element refers to an interface devicesuch as a trigger, button, joystick, or the like, which is manipulatedby the user to interact with host computer 104. As can be seen in FIGS.2A-2B and known to those skilled in the art, more than one of each userinput element and additional user input elements may be included onhaptic peripheral 100. Accordingly, the present description of a trigger118, for example, does not limit haptic peripheral 100 to a singletrigger. Further, the block diagram of FIG. 3 shows only one (1) of eachof joystick 110, button 114, and trigger 118. However, those skilled inthe art would understand that multiple joysticks, buttons, and triggers,as well as other user input elements, may be used, as described above.

As can be seen in the block diagram of FIG. 3, haptic peripheral 100includes a targeted haptic output device or motor for each of the userinput elements thereof as well as one or more general or rumble hapticoutput devices 122, 124 coupled to housing 102 in a location where ahand of the user is generally located. More particularly, joystick 110includes a haptic output device or motor 112 coupled thereto, button 114includes a haptic output device or motor 116 coupled thereto, andtrigger 118 includes a haptic output device or motor 120 coupledthereto. Each haptic output device 112, 116, 120 includes a sensor 113,117, 121, respectively, coupled thereto for sensing a currentoperational status of respective haptic output device as will bedescribed in more detail herein. In addition, haptic peripheral 100includes a position sensor coupled to each of the user input elementsthereof. More particularly, joystick 110 includes a position sensor 111coupled thereto, button 114 includes a position sensor 115 coupledthereto, and trigger 118 includes a position sensor 119 coupled thereto.Local processor 108 is coupled to haptic output devices 112, 116, 120 aswell as position sensors 111, 115, 119 of joystick 110, button 114, andtrigger 118, respectively.

In response to signals received from position sensors 111, 115, 119,local processor 108 instructs haptic output devices 112, 116, 120 toprovide haptic effects to joystick 110, button 114, and trigger 118,respectively. Such effects are discernible or distinguishable fromgeneral or rumble haptic effects produced by general haptic outputdevices 122, 124 along the entire body of the controller. Each generalhaptic output device 122, 124 includes a sensor 123, 125, respectively,coupled thereto for sensing a current operational status of itsrespective haptic output device as will be described in more detailherein. The collective haptic effects provide the user with a greatersense of immersion to the game as multiple modalities are beingsimultaneously engaged, e.g., video, audio, and haptics.

In determining the type of haptic effects to be executed and provided tothe user, high level haptic parameters or streaming values are generatedin the software code of the processor of host computer 104 and sent toprocessor 108 of haptic peripheral 100 where they are processed and theappropriate voltage levels are generated for the haptic output devices.This allows haptic peripheral 100 to provide the appropriate hapticfeedback to the user for its haptic output devices and vary the amountor type of haptic feedback through the different voltage levels that aregenerated for the haptic output devices. This may be considered a localcontrol embodiment in which host computer 104 provides high levelsupervisory commands to processor 108 of haptic peripheral 100, andprocessor 108 of haptic peripheral 100 decodes the commands and manageslow level force control loops to sensors and the haptic output devicesin accordance with the high level commands and independently of the hostcomputer 104. More particularly, in operation, local processor 108detects or receives positions and/or movement events from positionsensors 111, 115, 119 and sends the positions and/or movement events tohost computer 104. The processor of host computer 104 provides a controlsignal or high level supervisory or streaming commands to localprocessor 108, and local processor 108 then provides control signals tohaptic output devices 112, 116, 120, 122, 124 based on the high levelsupervisory or streaming commands received from host computer 104. Forexample, when in operation, voltage magnitudes and durations of hapticeffects are streamed from host computer 104 to haptic peripheral 100where information is provided to haptic output devices 112, 116, 120,122, 124 via local processor 108. Host computer 104 may provide highlevel commands to local processor 108 such as the type of haptic effectto be output (e.g. vibration, jolt, detent, pop, etc.) by haptic outputdevices 112, 116, 120, 122, 124 whereby the local processor 108instructs haptic output devices 112, 116, 120, 122, 124 as to particularcharacteristics of the haptic effect which is to be output (e.g.magnitude, frequency, duration, etc.). Local processor 108 may retrievethe type, magnitude, frequency, duration, or other characteristics ofthe haptic effect from a memory 109 coupled thereto (shown in the blockdiagram of FIG. 3).

Although not shown on FIG. 3, a driver interface may optionally beconnected between local processor 108 of haptic peripheral 100 and eachhaptic output device to convert signals from local processor 108 intosignals appropriate to drive the respective haptic output device. Thedriver interface can include power amplifiers, switches, digital toanalog controllers (DACs), analog to digital controllers (ADCs), andother components, as is well known to those skilled in the art. Forexample, voltage mode amplifiers are low cost components that can beused in the driver interface to drive the motors based on controlsignals from local processor 108 of haptic peripheral 100. Localprocessor 108 outputs control signals to the driver interface whichincludes electronic components and circuitry used to supply a hapticoutput device with the required electrical current and voltage to causethe desired haptic effects. Each haptic output device may include aseparate drive circuit, all coupled to local processor 108.

In a different, host-controlled embodiment, host computer 104 canprovide low-level force commands to haptic peripheral 100, which aredirectly transmitted to the haptic output devices via local processor108 of haptic peripheral 100 or other circuitry (if no local processor108 is present). The processor of host computer 104 thus directlycontrols and processes all signals to and from the haptic peripheral,e.g. the host computer directly controls the forces output by the hapticoutput devices of haptic peripheral 100. This embodiment may bedesirable to reduce the cost of the force feedback device yet further,since no complex local processor 108 or other processing circuitry needbe included in haptic peripheral 100.

In another embodiment, other hardware can be provided locally to hapticperipheral 100 to provide functionality similar to local processor 108.For example, a hardware state machine incorporating fixed logic can beused to provide signals to the haptic output devices and receive sensorsignals from the sensors, and to output tactile signals according to apredefined sequence, algorithm, or process. Techniques for implementinglogic with desired functions in hardware are well known to those skilledin the art. Such hardware can be well suited to less complex forcefeedback devices. In another embodiment, functionality similar to localprocessor 108 may be provided locally within the integrated circuitry ofthe driver interface or may be provided locally within the circuitry ofthe haptic output device. As such, as used herein, the term “processor”includes a separate or stand-alone component which performs thefunctions described herein as well as embodiments in which thefunctionality described herein is integrated into and executed byanother component of haptic peripheral 100 such as but not limited tothe driver interface or a haptic output device of haptic peripheral 100.

Embodiments hereof relate to methods and systems to improve a hapticoutput device's ability to achieve a desired haptic effect waveform. Themethod of controlling a haptic output device as described herein may beapplied to one or more of haptic output devices 112, 116, 120, 122, 124of haptic peripheral 100. Further, it is not required that haptic outputdevices 112, 116, 120, 122, 124 be the same type of haptic outputdevice. The method of controlling a haptic output device as describedherein may be applied to various types of haptic output devices. Forexample, although primarily described with respect to brushless electricDC motors, embodiments hereof may be applied to various haptic outputdevices including but not limited to brushed electric DC motors,electromagnetic motors, eccentric rotating mass (“ERM”) actuators inwhich an eccentric mass is moved by a motor, linear resonant actuators(“LRAs”) in which a mass attached to a spring is driven back and forth,a “smart material” such as piezoelectric, electro-active polymers thatdeform in response to signals or shape memory alloys, a solenoidresonant actuator (“SRA”), electromagnetic motors in which an eccentricmass is moved by a motor, vibrotactile actuators, inertial actuators,mechanisms for changing stiffness, electrostatic friction (ESF),ultrasonic surface friction (USF), devices that induce acousticradiation pressure with an ultrasonic haptic transducer, devices thatuse a haptic substrate and a flexible or deformable surface, devicesthat provide projected haptic output such as a puff of air using an airjet, or any combination of actuators described above. In anotherembodiment, the haptic output device may use kinesthetic haptic feedbackincluding, for example, solenoids to change the stiffness/damping of auser input element or the housing of haptic peripheral 100, small airbags that change size in a user input element or the housing of hapticperipheral 100, or shape changing materials.

The method described herein may be applied to various types of hapticoutput devices to provide a universal method of substantially matchingor following a desired haptic effect waveform regardless of which typeof haptic output device is utilized. As such, the algorithm describedherein compensates for the differences between haptic output devices byusing both current operational status information and propertyinformation about the haptic output device. More particularly, asexplained above with respect to FIG. 1, some actuators or haptic outputdevices require a significant amount of time to slow down when brakedand/or a significant amount of time to kick start. For example, abrushless electric DC motor has internal controls which allow the motorto automatically kick start and brake the motor. A brushless electric DCmotor when in motion provides minimum friction and thus is a powerefficient haptic output device that will not drain the power source ofthe system. A haptic peripheral having a brushless electric DC motor fora haptic output device thus has relatively lower power requirements,thereby reducing cost, volume, and power consumption. However, due toits minimum friction, the brushless electric DC motor takes asignificant time to slow down when braked and a profile of the deliveredhaptic effects may not match or follow a desired haptic effect waveform.Embodiments hereof relate to generating a control signal to compensatefor or take into account a current operational status and/or propertiesof the haptic output device to achieve the desired haptic effectwaveform.

Turning to FIGS. 4-5, a method for changing or updating the controlsignal to compensate for or take into account a current operationalstatus of the haptic output device is illustrated. FIG. 4 is a flowchart illustrating a method for controlling haptic effects output by ahaptic output device according to an embodiment hereof, wherein themethod includes updating or modifying a control signal with sensorinformation relating to speed, motion, acceleration, or position of thehaptic output device. FIG. 5 is a schematic illustration of a desiredhaptic effect waveform 130, a first control signal 132 prior tomodification thereof, a second control signal 533 after modificationthereof according to the flow chart of FIG. 4, and a haptic effect 534output in response to the second or modified control signal. For sake ofillustration, the flow diagram will be described with reference to hostcomputer 104 and haptic peripheral 100. In an embodiment, thefunctionality of the flow diagram of FIG. 4 is implemented by softwarestored in the memory of host computer 104 and executed by the processorof host computer 104, and/or memory 109 of haptic peripheral 100 andexecuted by local processor 108 of haptic peripheral 100. In otherembodiments, the functionality may be performed by hardware through theuse of an application specific integrated circuit (“ASIC”), aprogrammable gate array (“PGA”), a field programmable gate array(“FPGA”), or any combination of hardware and software. As previouslydescribed herein, the processor of host computer 104 and/or processor108 of haptic peripheral 100 may be a separate or stand-alone componentwhich performs the functions described herein or the functionalitydescribed herein with respect to the processor of host computer 104and/or processor 108 of haptic peripheral 100 may be integrated into andexecuted by another component of haptic peripheral 100 such as but notlimited to the driver interface or a haptic output device of hapticperipheral 100.

As an initial step prior to the flow chart illustrated on FIG. 4,desired haptic effect waveform 130 (shown on FIG. 1 and FIG. 5) isdetermined or set. Desired haptic effect waveform 130 is the userintended haptic experience. As shown in FIG. 5, in an embodiment hereof,desired haptic effect waveform 130 includes a strength increase 150 aswell as a plurality of strength decreases 152A, 152B, 152C. Via strengthdecreases 152A, 152B, 152C, desired haptic effect waveform 130 conveys aplurality of different magnitudes or amplitudes that are to be appliedas haptic effects for a plurality of consecutive time periods ordurations 154A, 154B, 154C. During durations 154A, 154B, 154C, thestrength of the previously applied haptic effect (i.e., the previouslyapplied strength increase or strength decrease) is sustained. As usedherein, a strength increase refers to an increase in magnitude oramplitude of a desired haptic effect waveform, or to the correspondingincrease in magnitude or amplitude of the haptic effect output inresponse to a control signal. Similarly, a strength decrease refers to adecrease in magnitude or amplitude of a desired haptic effect waveform,or to the corresponding decrease in magnitude or amplitude of the hapticeffect output in response to a control signal. Desired haptic effectwaveform 130 may be determined or set by a user or by a programmer orcreator of the haptic effects.

In the embodiment of FIG. 5, desired haptic effect waveform 130 includesstrength increase 150 as well as a plurality of strength decreases 152A,152B, 152C as described above. However, as will be understood by one ofordinary skill in the art, the desired haptic effect waveform is notrequired to be the shape shown in FIG. 5. The desired haptic effectwaveform may be any type of waveform including but not limited to a sineor sinusoidal periodic wave, a square wave, a pulse wave, a triangularwave, or a nonperiodic wave. Waveforms may be utilized to output avibration effect at a particular frequency (period) and magnitude oramplitude. Single, non-directional jolts can be output as a singleperiod of a vibration or part of a period of a vibration. When providedor supplied to the processor of host computer 104 and/or processor 108of haptic peripheral 100, the desired haptic effect waveform typicallyincludes a frequency command, a magnitude command, and a waveform orfunction as parameters or inputs to the processor. Generation of controlsignals based on desired haptic effect waveforms are further describedin U.S. Pat. No. 7,446,752 to Goldenberg et al., assigned by the sameassignee as the present application, hereby incorporated by reference inits entirety. In addition to periodic vibrational effects, nonperiodiceffects and/or consistent force effects may also be played or output onthe haptic output devices of haptic peripheral 100 as described in U.S.Pat. No. 7,446,752 to Goldenberg et al.

As will be understood by one of ordinary skill in the art, desiredhaptic effect waveform 130 is translated into digital data that is sentor otherwise provided to the processor of host computer 104 and/orprocessor 108 of haptic peripheral 100. Desired haptic effect waveform130 is thus a first input provided to the processor of host computer 104and/or processor 108 of haptic peripheral 100 as shown at step 440 ofFIG. 4. Desired haptic effect waveform 130 may be sent or otherwiseprovided to the processor of host computer 104 and/or processor 108 ofhaptic peripheral 100 in digital form over an interface such as I2c/SPIor other similar interface, or may sent or otherwise provided to theprocessor of host computer 104 and/or processor 108 of haptic peripheral100 in signal form such as a PWM (pulse width modulation) signal withduty cycle/frequency control or analog signal with magnitude and/ortiming control.

In addition to desired haptic effect waveform 130, current operationalstatus information of the haptic output device is also provided to theprocessor of host computer 104 and/or processor 108 of haptic peripheral100 as a second input as shown at step 448 of FIG. 4. More particularly,each haptic output device 112, 116, 120, 122, 124 includes respectivesensor 113, 117, 121,123, 125, respectively, coupled thereto for sensinga current operational status of the respective haptic output device. Inan embodiment hereof, sensors 113, 117, 121,123, 125 are configured tosense a position, a speed, acceleration, or a motion of the respectivehaptic output device. For example, the sensor is configured to detectwhether a particular haptic output device is at a standstill, in motion,and/or the speed thereof. In an embodiment, sensors 113, 117, 121, 123,125 are hall-effect sensors but may be other types of speed, motion,acceleration, or position sensors known in the art such as but notlimited to accelerometers, potentiometers, magnetic field sensors,optical encoders, capacitive sensors, back emf sensors, and the like.

At step 442 of FIG. 4, a control signal is generated via an algorithm orinternal logic executed by the processor of host computer 104 and/orprocessor 108 of haptic peripheral 100. As shown on FIG. 4, thealgorithm uses desired haptic effect waveform 130 as a first input (step440) and current operational status information of the haptic outputdevice from its respective sensor as a second input (step 448). In anembodiment, the control signal originates from the first and secondinputs such that the algorithm or internal logic initially creates thecontrol signal according to the first and second inputs. In anotherembodiment, the control signal is updated or changed due to the firstand second inputs. More particularly, a base control signal may bestored within host computer 104 and/or haptic peripheral 100 and thealgorithm or internal logic may update, modify, vary, or otherwisechange the base control signal according to the first and second inputs.As used herein, the term “generates” includes a control signal thatoriginates from the algorithm as well as a control signal that isupdated, modified, varied, or otherwise changed by the algorithm. Theupdate rate depends on the characteristics of the sensor as well as thehaptic output device. In an embodiment, the control signal may bemodified or updated in real time as the current operational status ofthe haptic output device changes as detected via sensors 113, 117,121,123, 125.

The control signal generated at step 442 of FIG. 4 is configured tocontrol the haptic output device to output or deliver a haptic effecthaving a profile that closely matches or follows desired haptic effectwaveform 130. More particularly, the control signal generated at step442 of FIG. 4 is sent to the driver interface or amplifier of hapticperipheral 100 at step 444 of FIG. 4, and a drive signal is provided tothe haptic output device at step 446 of FIG. 4 to instruct the hapticoutput device to output a haptic effect in response to the controlsignal generated at step 442. Thus, the control signal generated at step442 is applied to the haptic output device as a drive signal thatinstructs the haptic output device to output a haptic effect having aprofile, and the profile of the haptic effect closely matches or followsdesired haptic effect waveform 130.

More particularly, with reference to FIG. 5, first control signal 132 isshown with a profile that closely matches or follows desired hapticeffect waveform 130. However, as described with respect to FIG. 1, whenfirst control signal 132 is applied to certain haptic output devices,the profile of the output haptic effect does not match or follow neitherfirst control signal 132 nor desired haptic effect waveform 130. In anembodiment hereof, first control signal 132 may be a base control signalthat is stored in host computer 104 and/or haptic peripheral 100. Secondcontrol signal 533 of FIG. 5 is an example of how first control signal132 may be modified according to the flow chart of FIG. 4. With currentoperational status information of the haptic output device from itsrespective sensor being received as an input, the algorithm executed byprocessor of host computer 104 and/or processor 108 of haptic peripheral100 modifies or changes first control signal 132 into second controlsignal 533 to compensate for or take into account the currentoperational status of the haptic output device. When applied to thehaptic output device, second control signal 533 results in haptic effect534 which closely or substantially matches or follows desired hapticeffect waveform 130.

In the embodiment of FIG. 5, second control signal 533 causes theprofile of haptic effect 534 to include a strength increase or strengthdecrease that substantially matches or follows the strength increase orstrength decrease of desired haptic effect waveform 130. Moreparticularly, a first strength decrease 194 of haptic effect 534 isshown to substantially match or follow first strength decrease 152A ofdesired haptic effect waveform 130 and a second strength decrease 196 ofhaptic effect 534 is shown to substantially match or follow secondstrength decrease 152B of desired haptic effect waveform 130. Durations154A, 154B, 154C of desired haptic effect waveform 130 correspond todurations 188, 190, 192, respectively, of haptic effect 534 in which thestrength of the output or delivered haptic effect is sustained.

It is desirable for the profile of the haptic effect to substantiallymatch the desired haptic effect waveform in terms of amplitude andtiming. As used herein, “substantially match” or “closely match” meansthat the profile of the haptic effect more closely follows the amplitudeand timing of the desired haptic effect waveform when the control signalutilizes the current operational status of the haptic output device asan input relative to when the control signal does not utilize thecurrent operational status of the haptic output device as an input.Stated another way, when the current operational status of the hapticoutput device is taken into account, matching between the profile of thehaptic effect and the desired haptic effect waveform is improved. In anembodiment hereof, the profile of the haptic effect has the sameamplitude, within a margin of error equal to or less than 25%, as thedesired haptic effect waveform and changes in amplitude of the profileof the haptic effect occur at the same time, within a margin of errorequal to or less than 25%, as changes in amplitude of the desired hapticeffect waveform.

Notably, second control signal 533 as modified according to the flowchart of FIG. 4 is a different signal or waveform that has a differentprofile/shape than first control signal 132 and desired haptic effectwaveform 130. More particularly, with reference to FIG. 5, first controlsignal 132 includes a kick 156 which includes an increase in magnitudeor amplitude of a haptic effect, a first duration or time period 172with no amplitude or magnitude changes of the haptic effect such thatthe haptic effect is sustained at the previous strength, a first brake158 which includes a decrease in magnitude or amplitude of the hapticeffect, a second duration or time period 174 with no amplitude ormagnitude changes of the haptic effect such that the haptic effect issustained at the previous strength, a second brake 160 which includes adecrease in magnitude or amplitude of the haptic effect, and a thirdduration or time period 176 with no amplitude or magnitude changes ofthe haptic effect such that the haptic effect is sustained at theprevious strength. Conversely, second control signal 533 includes afirst kick 533 which includes an increase in magnitude or amplitude of ahaptic effect, a first duration or time period 178 with no amplitude ormagnitude changes of the haptic effect such that the haptic effect issustained at the previous strength, a first brake 164 which includes adecrease in magnitude or amplitude of the haptic effect, a secondduration or time period 180 with no amplitude or magnitude changes ofthe haptic effect such that the haptic effect is sustained at theprevious strength, a second kick 166 which includes an increase inmagnitude or amplitude of a haptic effect, a third duration or timeperiod 182 with no amplitude or magnitude changes of the haptic effectsuch that the haptic effect is sustained at the previous strength, asecond brake 168 which includes a decrease in magnitude or amplitude ofthe haptic effect, a fourth duration or time period 184 with noamplitude or magnitude changes of the haptic effect such that the hapticeffect is sustained at the previous strength, a third kick 170 whichincludes an increase in magnitude or amplitude of a haptic effect, and afifth duration or time period 184 with no amplitude or magnitude changesof the haptic effect such that the haptic effect is sustained at theprevious strength.

To illustrate the differences between first and second control signals132, 533, respectively, second duration 174 of first control signal 132is compared to second and third durations 180, 182 of second controlsignal 533. Second duration 174 of first control signal 132 is equal tosecond and third durations 180, 182 of second control signal 533. Secondduration 174 of first control signal 132 and second and third durations180, 182 of second control signal 533 each correspond to second duration154B of desired haptic effect waveform 130, as well as to secondduration 190 of haptic effect 534. During second duration 154B ofdesired haptic effect waveform 130, only first strength decrease 152Aoccurs which is relatively small in magnitude or amplitude. Similarly,during second duration 190 of haptic effect 534 only a first strengthdecrease 194 occurs which is relatively small in magnitude or amplitude,and during second duration 174 of first control signal 132 only firstbrake 158 occurs which is relatively small in magnitude or amplitude. Incontrast, during second and third durations 180, 182 of second controlsignal 533, first brake 164, second kick 166, and second brake 168occur, each of which are relatively higher in magnitude or amplitudethan first brake 158 of first control signal 132. When being applied toa haptic output device such as a brushless electric DC motor withminimal friction, second control signal 533 applies a very large brake(first brake 164), followed by a kick (second kick 166) and anotherbrake (second brake 168) in order to achieve the profile or waveformcorresponding to second duration 154B of desired haptic effect profile130 and second duration 190 of haptic effect 534. Stated another way,second control signal 533 includes a plurality of kicks and brakes(first brake 164, second kick 166, second brake 168) in order to causethe profile of haptic effect 534 to include only a single strengthdecrease (first strength decrease 194) that substantially matches thesingle strength decrease (first strength decrease 152A) of desiredhaptic effect waveform 130.

In practice, instantaneous strength increases or decreases(corresponding to kicks and brakes of a control signal) cannot beachieved because of physical limitations of the system that generatesthe waveform. When outputting a kick of a control signal, the time takenfor a haptic output device to rise from the low level to the high levelis called the rise time, and when outputting a brake of a controlsignal, the time taken for a haptic output device to fall from the highlevel to the low level is called the fall time. As such, the outputstrength increases and strength decreases of haptic effect 534 are notinstantaneous but rather necessarily include rise and fall times,respectively. It is an object of the present invention to minimize therise times and fall times for the output strength increases and strengthdecreases such that the profile of haptic effect 534 will substantiallymatch or follow the strength increase or strength decrease of desiredhaptic effect waveform 130. Stated another way, in an embodiment inwhich the desired haptic effect waveform includes instantaneous strengthincreases and/or strength decreases, the corresponding strengthincreases and/or strength decreases of the output or delivered hapticeffect have minimized or decreased rise and fall times, respectively,when the control signal utilizes the current operational status of thehaptic output device as an input relative to when the control signaldoes not utilize the current operational status of the haptic outputdevice as an input.

In another embodiment hereof shown in FIG. 6, parameters or propertiesof the haptic output device may also be used as a third input forgenerating or updating the control signal as shown at step 695 of FIG. 6in addition to desired haptic effect waveform 130 as a first input (step440) and current operational status information of the haptic outputdevice from its respective sensor as a second input (step 448).Parameters or properties of the haptic output device may includeidentification of the type of haptic output device, a characteristic ofthe haptic output device, and/or a past user experience relating to thehaptic output device. In an embodiment, parameters or properties of thehaptic output device are provided to the processor of host computer 104and/or processor 108 of haptic peripheral 100 from the haptic outputdevice itself. For example, the processor of host computer 104 and/orprocessor 108 of haptic peripheral 100 may be configured to read orextract such information from the haptic output device. In anotherembodiment, parameters or properties of the haptic output device areprovided to the processor of host computer 104 and/or processor 108 ofhaptic peripheral 100 from the user. For example, a user may inputinformation relating to their previous experience or analysis of how thehaptic output device outputs haptic effects.

While various embodiments according to the present invention have beendescribed above, it should be understood that they have been presentedby way of illustration and example only, and not limitation. It will beapparent to persons skilled in the relevant art that various changes inform and detail can be made therein without departing from the spiritand scope of the invention. Thus, the breadth and scope of the presentinvention should not be limited by any of the above-described exemplaryembodiments, but should be defined only in accordance with the appendedclaims and their equivalents. It will also be understood that eachfeature of each embodiment discussed herein, and of each reference citedherein, can be used in combination with the features of any otherembodiment. All patents and publications discussed herein areincorporated by reference herein in their entirety.

What is claimed is:
 1. A method of controlling a haptic output device,the method comprising the steps of: receiving a first input including adesired haptic effect waveform, wherein the desired haptic effectwaveform includes at least one strength increase or strength decrease;receiving a second input from a sensor, the second input including acurrent operational status of the haptic output device; generating acontrol signal via an algorithm that uses the first input and the secondinput; and applying the control signal to the haptic output device toinstruct the haptic output device to output a haptic effect having aprofile, wherein the control signal causes the profile of the hapticeffect to include a strength increase or strength decrease thatsubstantially matches the strength increase or strength decrease,respectively, of the desired haptic effect waveform, such that matchingbetween the profile of the haptic effect and the desired haptic effectwaveform is made more similar by basing the control signal on thecurrent operational status of the haptic output device.
 2. The method ofclaim 1, wherein the haptic output device is a brushless electric DCmotor.
 3. The method of claim 1, wherein the method further includes thestep of: receiving a third input including at least one parameter of thehaptic output device, wherein the step of generating the control signalvia an algorithm includes using the first, second, and third inputs. 4.The method of claim 3, wherein the at least one parameter is selectedfrom the group consisting of a type, a characteristic, and a pastexperience.
 5. The method of claim 1, wherein the sensor is configuredto sense a position, a speed, or an acceleration of the haptic outputdevice.
 6. The method of claim 1, wherein the step of generating thecontrol signal includes modifying a base control signal via thealgorithm such that the control signal includes a different waveformthan the base control signal.
 7. The method of claim 1, wherein thestrength increase or strength decrease of the profile of the hapticeffect has the same amplitude as the strength increase or strengthdecrease of the desired haptic effect waveform and the strength increaseor strength decrease of the profile of the haptic effect occurs at thesame time as the strength increase or strength decrease of the desiredhaptic effect waveform.
 8. The method of claim 1, wherein the controlsignal includes a plurality of kicks and brakes in order to cause theprofile of the haptic effect to include a strength decrease thatsubstantially matches the strength decrease of the desired haptic effectwaveform.
 9. A system for controlling a haptic output device, the systemcomprising: a processor; a haptic peripheral including a haptic outputdevice, wherein the haptic output device is configured to receive acontrol signal from the processor and output a haptic effect having aprofile to the haptic peripheral in response to the control signal fromthe processor; and a sensor coupled to the haptic output device, whereinthe sensor is configured to sense a current operational status of thehaptic output device, wherein the processor is configured to generatethe control signal for the haptic output device depending on a desiredhaptic effect waveform and the current operational status of the hapticoutput device, such that the control signal causes the profile of thehaptic effect to substantially match the desired haptic effect waveform,and such that matching between the profile of the haptic effect and thedesired haptic effect waveform is made more similar by basing thecontrol signal on the current operational status of the haptic outputdevice.
 10. The system of claim 9, wherein the haptic output device is abrushless electric DC motor.
 11. The system of claim 9, wherein thecontrol signal is further based on at least one parameter that isselected from the group consisting of a type, a characteristic, and apast experience.
 12. The system of claim 9, wherein the sensor isconfigured to sense a position, a speed, or an acceleration of thehaptic output device.
 13. The system of claim 9, wherein the desiredhaptic effect waveform includes at least one strength increase orstrength decrease and wherein the control signal causes the profile ofthe haptic effect to include a strength increase or strength decreasethat substantially matches the strength increase or strength decrease ofthe desired haptic effect waveform.
 14. The system of claim 13, whereinthe strength increase or strength decrease of the profile of the hapticeffect has the same amplitude as the strength increase or strengthdecrease of the desired haptic effect waveform and the strength increaseor strength decrease of the profile of the haptic effect occurs at thesame time as the strength increase or strength decrease of the desiredhaptic effect waveform.
 15. The system of claim 13, wherein the controlsignal includes a plurality of kicks and brakes in order to cause theprofile of the haptic effect to include a strength decrease thatsubstantially matches the strength decrease of the desired haptic effectwaveform.
 16. The system of claim 9, wherein the system further includesa host computer and the processor is disposed in the host computer. 17.The system of claim 9, wherein the processor is disposed in the hapticperipheral.
 18. A system for controlling a haptic output device, thesystem comprising: a processor; a haptic peripheral including a hapticoutput device, the haptic output device being a brushless electric DCmotor having internal controls to automatically kick start and brake themotor, wherein the haptic output device is configured to receive acontrol signal from the processor and output a haptic effect having aprofile to the haptic peripheral in response to the control signal fromthe processor; and a sensor coupled to the haptic output device, whereinthe sensor is configured to sense a position, a speed, or anacceleration of the haptic output device, wherein the processor isconfigured to vary the control signal for the haptic output devicedepending on a desired haptic effect waveform that includes at least onestrength increase or strength decrease and on a signal received from thesensor such that the control signal causes the profile of the hapticeffect to include a strength increase or strength decrease thatsubstantially matches the strength increase or strength decrease of thedesired haptic effect waveform, such that matching between the profileof the haptic effect and the desired haptic effect waveform is made moresimilar by basing the control signal on a current operational status ofthe haptic output device.
 19. The system of claim 18, wherein theprocessor is also configured to vary the control signal for the hapticoutput device depending on at least one parameter of the haptic outputdevice.
 20. The system of claim 18, wherein the control signal includesa plurality of kicks and brakes in order to cause the profile of thehaptic effect to include a strength decrease that substantially matchesthe strength decrease of the desired haptic effect waveform.